package com.example.demo.controller;

import com.example.demo.configuration.ListConfig;
import com.example.demo.configuration.MapConfig;
import com.example.demo.model.Stuident;
import com.example.demo.model.YmlString;
import jakarta.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;

@Controller
public class ymlController {

    // 基本传值
//    @Value("${demo.key1}")
//    public String key1;
//    @Value("${demo.key2}")
//    public String key2;
//    @Value("${demo.key3}")
//    public String key3;
//    @Value("${demo.key4}")
//    public Boolean key4;
//    @Value("${demo.key5}")
//    public Float key5;
//    @Value("${demo.key6}")
//    public String key6;
    // 对象和类型和数组
    @Autowired
    private ListConfig listConfig;
    @Autowired
    private Stuident stuident;
    @Autowired
    private MapConfig mapConfig;
    @Autowired
    private YmlString ymlString;

    // 配置的转义
    @Value("${string.str1}")
    private String str1;
    @Value("${string.str2}")
    private String str2;
    @Value("${string.str3}")
    private String str3;

    @PostConstruct
    public void init() {
        // 配置的转义
        /*
        str1: Hello \n Spring Boot.
        str2: Hello \n Spring Boot.
        str3: Hello
         */
        // 这里的没有输入 和 单引号 是转义了,双引号成功的换行了,就是没转移
        // 这里\n本来就是要换行的, 这里没换行,直接输出\n的都是转义了,刚刚好和平常说的相反
        System.out.println("str1: " + str1);
        System.out.println("str2: " + str2);
        System.out.println("str3: " + str3);



        // 读取配置
//        System.out.println("key1: " + key1);
//        System.out.println("key2: " + key2);
//        System.out.println("key3: " + key3);
//        System.out.println("key4: " + key4);
//        System.out.println("key5: " + key5);
//        System.out.println("key6: " + key6 + (key6 == null));

        // 读取 集合 和 数组
        System.out.println(listConfig.toString());
        System.out.println(stuident.toString());
        System.out.println(mapConfig.toString());
        System.out.println(ymlString.toString() + "ymlString.length = " + ymlString.getName().length);
    }
}
